<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class RevisionesController extends AppController{
    var $name='Revisiones';
    var $uses = array('Revision','Productor','Predio','Tecnico','Producto','Situacionesactual',
        'Atributo','Instalacionestipo','Atributosxinstalacion','Instalacion','Produccion','Canal',
        'Financiamiento','Actividadtipo','Otrasactividad','Empleado','CanalesRevision','Comercializacion',
        'Revision','Pcultural','Informestecnico','Controlessanitario','Quimico','Etapa','Atributosxrecomendacion',
        'Recoinstalacion','Recocultivo'
    );
    var $helpers=array('Ajax','Javascript','DatePicker','Number');

    function ver($id=null){
        $tipoRevision=$this->Revision->field('Revision.tipo_rev',array('Revision.id'=>$id));
        if($tipoRevision=='INICIAL'){
            $this->redirect('/revisiones/verinicial/'.$id);
        }elseif($tipoRevision=='QUINCENAL'){
            $this->redirect('/revisiones/verquincenal/'.$id);
        }elseif($tipoRevision=='BIMESTRAL'){
            $this->redirect('/revisiones/verbimestral/'.$id);
        }elseif($tipoRevision=='TECNICA'){
            $this->redirect('/revisiones/vertecnica/'.$id);
        }else{
            $this->Session->setFlash('Error: Revision invalida.');
            $this->redirect('../productores/buscar');
        }
    }

    function verinicial($id=null){
        $revision=$this->Revision->find('first',array(
                'conditions'=>array('Revision.id'=>$id, 'Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA)));
        if ($revision){
            $this->set('revision',$revision);

            //buscar instalaciones
            $inst_tmp=$this->Instalacion->find('all',array(
                'conditions'=>'Instalacion.revision_id='.$id,
                'order'=>'Instalacionestipo.desc_tipo_inst ASC'
                ));
            if($inst_tmp){
                foreach($inst_tmp as $tmp){
                    $instalaciones[]=$tmp+$this->Atributosxinstalacion->find('all',array(
                    'conditions'=>'Atributosxinstalacion.instalacion_id='.$tmp['Instalacion']['id'],
                    'order'=>'Atributo.nombre_atr ASC'));
                }
                $this->set('instalaciones',$instalaciones);
            }
            //buscar producciones
            $this->set('producciones',$this->Produccion->find('all',array(
                    'conditions'=>'Produccion.revision_id='.$id,
                    'order'=>array('Produccion.fch_prod'=>'DESC','Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
                    )));

            //buscar otras actividades
            $this->set('otrasact',$this->Otrasactividad->find('all',array(
                    'conditions'=>'Otrasactividad.revision_id='.$id,
                    'order'=>'Otrasactividad.actividad ASC'
                    )));

            //buscar financiamientos
            $this->set('financiamientos',$this->Financiamiento->find('all',array(
                    'conditions'=>'Financiamiento.revision_id='.$id,
                    'order'=>array('Entidad.nombre_ent'=>'ASC','Financiamiento.tipo_fin'=>'ASC')
                    )));

            //buscar empleados
            $this->set('empleados',$this->Empleado->find('all',array(
                    'conditions'=>'Empleado.revision_id='.$id,
                    'order'=>array('Empleado.grupo_empl'=>'ASC','Empleado.temp_perm_empl'=>'ASC')
                    )));

            //buscar canales x revision
            $this->set('canalesrevisiones',$this->CanalesRevision->find('all',array(
                    'conditions'=>'CanalesRevision.revision_id='.$id,
                    'order'=>array('CanalesRevision.valoracion_can_prod'=>'ASC','Canal.nombre_canal'=>'ASC')
                    )));

            //buscar comercializaciones
            $this->set('comercializaciones',$this->Comercializacion->find('all',array(
                    'conditions'=>'Comercializacion.revision_id='.$id,
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC','Canal.nombre_canal'=>'ASC')
                    )));
        }
    }

    function verquincenal($id){
        $revision=$this->Revision->find('first',array(
                'conditions'=>array('Revision.id'=>$id, 'Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA)));
        if ($revision){
            $this->set('revision',$revision);

            //Producciones
            $this->set('producciones',$this->Produccion->find('all',array(
                    'conditions'=>'Produccion.revision_id='.$id,
                    'order'=>array('Produccion.fch_prod'=>'DESC','Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
                    )));

            //Practicas culturales
            $pcultmp=$this->Pcultural->find('all',array(
                    'conditions'=>'Pcultural.revision_id='.$id,
                    'order'=>'Produccion.fch_prod DESC'
                ));
            if($pcultmp){
                foreach($pcultmp as $tmp){
                    $pculturales[]=$tmp+$this->Producto->find('first',array(
                        'conditions'=>'Producto.id='.$tmp['Produccion']['producto_id']));
                }
                $this->set('pculturales',$pculturales);
            }

            //Comercializaciones
            $this->set('comercializaciones',$this->Comercializacion->find('all',array(
                        'conditions'=>'Comercializacion.revision_id='.$id,
                        'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
                    )));

            //Informe Tecnico
            $infotmp=$this->Informestecnico->find('all',array(
                    'conditions'=>'Informestecnico.revision_id='.$id,
                    'order'=>'Produccion.fch_prod DESC'
                ));
            if($infotmp){
                foreach($infotmp as $tmp){
                    $informestecnicos[]=$tmp+$this->Producto->find('first',array(
                    'conditions'=>'Producto.id='.$tmp['Produccion']['producto_id']
                        ));
                }
                $this->set('informestecnicos',$informestecnicos);
            }

            //Control Fito Sanitario
            $contmp=$this->Controlessanitario->find('all',array(
                    'conditions'=>'Controlessanitario.revision_id='.$id,
                    'order'=>'Produccion.fch_prod DESC'
                ));
            if($contmp){
                foreach($contmp as $tmp){
                    $controlessanitarios[]=$tmp+$this->Producto->find('first',array(
                    'conditions'=>'Producto.id='.$tmp['Produccion']['producto_id'],
                        ));
                }
                $this->set('controlessanitarios',$controlessanitarios);
            }
        }

    }

    function verbimestral($id){
        $revision=$this->Revision->find('first',array(
                'conditions'=>array('Revision.id'=>$id, 'Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA)));
        if ($revision){
            $this->set('revision',$revision);
            $inst_tmp=$this->Instalacion->find('all',array(
                'conditions'=>'Instalacion.revision_id='.$id,
                'order'=>'Instalacionestipo.desc_tipo_inst ASC'
                ));
            if ($inst_tmp){
                foreach($inst_tmp as $tmp){
                    $instalaciones[]=$tmp+$this->Atributosxinstalacion->find('all',array(
                    'conditions'=>'Atributosxinstalacion.instalacion_id='.$tmp['Instalacion']['id'],
                    'order'=>'Atributo.nombre_atr ASC'
                        ));
                }
                $this->set('instalaciones',$instalaciones);
            }
            $this->set('financiamientos',$this->Financiamiento->find('all',array(
                    'conditions'=>'Financiamiento.revision_id='.$id,
                    'order'=>array('Entidad.nombre_ent'=>'ASC','Financiamiento.tipo_fin'=>'ASC')
                    )));

            $this->set('empleados',$this->Empleado->find('all',array(
                    'conditions'=>'Empleado.revision_id='.$id,
                    'order'=>array('Empleado.grupo_empl'=>'ASC','Empleado.temp_perm_empl'=>'ASC')
                    )));
        }
    }

    function vertecnica($id){
        $revision=$this->Revision->find('first',array(
                'conditions'=>array('Revision.id'=>$id, 'Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA)));
        if ($revision){
            $this->set('revision',$revision);
            $this->set('situacionesactuales',$this->Situacionesactual->find('first',array(
                        'conditions'=>'Situacionesactual.revision_id='.$id
                    )));
            $this->set('recocultivos',$this->Recocultivo->find('all',array(
                        'conditions'=>'Recocultivo.revision_id='.$id,
                        'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
                    )));
            $recoinst_tmp=$this->Recoinstalacion->find('all',array(
                'conditions'=>'Recoinstalacion.revision_id='.$id,
                'order'=>'Instalacionestipo.desc_tipo_inst ASC'
                ));
            if ($recoinst_tmp){
                foreach($recoinst_tmp as $tmp){
                    $recoinstalaciones[]=$tmp+$this->Atributosxrecomendacion->find('all',array(
                    'conditions'=>'Atributosxrecomendacion.recoinstalacion_id='.$tmp['Recoinstalacion']['id'],
                    'order'=>'Atributo.nombre_atr ASC'
                        ));
                }
                $this->set('recoinstalaciones',$recoinstalaciones);
            }
        }
    }

    function agregarinicial($id_productor){
        if (!empty($this->data)){
            $this->data['Revision']['productor_id']=$id_productor;
            $this->data['Revision']['actividadtipo_id']=$this->ID_FRUTIHORTICOLA;
            $this->data['Revision']['tipo_rev']='Inicial';
            if($this->Revision->save($this->data)){
                $id_rev=$this->Revision->getID();

                //guardar instalaciones
                if (!empty($this->data['Instalacion'])){
                    foreach($this->data['Instalacion'] as $key=>$datos){
                        $this->data['Instalacion'][$key]['revision_id']=$id_rev;
                        $this->data['Instalacion'][$key]['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Instalacion->create($this->data['Instalacion'][$key]);
                        if (($datos['cant_inst']!='')&&
                            ($this->Instalacion->validates())){
                            if ($this->Instalacion->save($this->data['Instalacion'][$key])){
                                $id_inst=$this->Instalacion->getID();
                                //guardar atributos
                                if(!empty($this->data[$key])){
                                    foreach($this->data[$key]['Atributosxinstalacion'] as $clave=>$valor){
                                        $this->data[$key]['Atributosxinstalacion'][$clave]['instalacion_id']=$id_inst;
                                        $this->Atributosxinstalacion->create($this->data[$key]['Atributosxinstalacion'][$clave]);
                                        $this->Atributosxinstalacion->save($this->data[$key]['Atributosxinstalacion'][$clave]);
                                    }
                                }
                            }
                        }
                    }
                }

                //guardar producciones
                if (!empty($this->data['Produccion'])){
                    foreach($this->data['Produccion'] as $key=>$datos){
                        $this->data['Produccion'][$key]['revision_id']=$id_rev;
                        $this->data['Produccion'][$key]['productor_id']=$id_productor;
                        $this->data['Produccion'][$key]['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Produccion->create($this->data['Produccion'][$key]);
                        if (($datos['fch_prod']!='')&&
                            ($datos['sup_sem_prod']!='')&&
                            ($this->Produccion->validates())){
                            $this->Produccion->save($this->data['Produccion'][$key]);
                        }
                    }
                }

                //guardar otras actividades
                if (!empty($this->data['Otrasactividad'])){
                    foreach($this->data['Otrasactividad'] as $key=>$datos){
                        $this->data['Otrasactividad'][$key]['revision_id']=$id_rev;
                        $this->Otrasactividad->create($this->data['Otrasactividad'][$key]);
                        if (($datos['tipo_cultivo_ganado']!='')&&
                            ($this->Otrasactividad->validates())){
                            $this->Otrasactividad->save($this->data['Otrasactividad'][$key]);
                        }
                    }
                }

                //guardar financiamientos
                if (!empty($this->data['Financiamiento'])){
                    foreach($this->data['Financiamiento'] as $key=>$datos){
                        $this->data['Financiamiento'][$key]['revision_id']=$id_rev;
                        $this->Financiamiento->create($this->data['Financiamiento'][$key]);
                        if ($this->Financiamiento->validates()){
                            $this->Financiamiento->save($this->data['Financiamiento'][$key]);
                        }
                    }
                }

                //guardar empleados
                if (!empty($this->data['Empleado'])){
                    foreach($this->data['Empleado'] as $key=>$datos){
                        $this->data['Empleado'][$key]['revision_id']=$id_rev;
                        $this->Empleado->create($this->data['Empleado'][$key]);
                        if(($datos['cant_regis_empl']!='')&&
                            ($datos['cant_no_regis_empl']!='')&&
                            ($this->Empleado->validates())){
                            $this->Empleado->save($this->data['Empleado'][$key]);
                        }
                    }
                }

                //guardar CanalesRevision
                if (!empty($this->data['CanalesRevision'])){
                    foreach($this->data['CanalesRevision'] as $key=>$datos){
                        $this->data['CanalesRevision'][$key]['revision_id']=$id_rev;
                        $this->CanalesRevision->create($this->data['CanalesRevision'][$key]);
                        if(($datos['valoracion_can_prod']!='')&&
                            ($this->CanalesRevision->validates())){
                            $this->CanalesRevision->save($this->data['CanalesRevision'][$key]);
                        }
                    }
                }

                //guardar comercializaciones
                if (!empty($this->data['Comercializacion'])){
                    foreach($this->data['Comercializacion'] as $key=>$datos){
                        $this->data['Comercializacion'][$key]['env_vendidos_com']='0';
                        $this->data['Comercializacion'][$key]['revision_id']=$id_rev;
                        $this->Comercializacion->create($this->data['Comercializacion'][$key]);
                        if(($datos['env_tipo_com']!='')&&
                            ($datos['kilos_com']!='')&&
                            ($datos['precio_com']!='')&&
                            ($this->Comercializacion->validates())){
                            $this->Comercializacion->save($this->data['Comercializacion'][$key]);
                        }
                    }
                }
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/productores/ver/'.$id_productor);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('productor',$this->Productor->find('first',array('conditions'=>'Productor.id='.$id_productor,'recursive'=>'-1')));
        $this->set('predios',$this->Productor->Predio->find('list',array(
                    'fields'=>'Predio.dom_pred',
                    'conditions'=>array('Predio.productor_id'=>$id_productor)
                )));
        $this->set('tecnicos',$this->Tecnico->find('superlist',array('fields'=>array(
                    'Tecnico.id','Tecnico.apellido_tec','Tecnico.nombre_tec'))));
        $this->set('instalacionestipos',$this->Instalacionestipo->find('list',array('fields'=>'desc_tipo_inst','order'=>'desc_tipo_inst ASC','recursive'=>'-1')));
        $this->Session->write('cont',0);
    }

    function agregarquincenal($id_productor){
        if (!empty($this->data)){
            $this->data['Revision']['productor_id']=$id_productor;
            $this->data['Revision']['actividadtipo_id']=$this->ID_FRUTIHORTICOLA;
            $this->data['Revision']['tipo_rev']='Quincenal';
            if($this->Revision->save($this->data)){
                $id_rev=$this->Revision->getID();

                //Guardar producciones
                if (!empty($this->data['Produccion'])){
                    foreach($this->data['Produccion'] as $key=>$datos){
                        $this->data['Produccion'][$key]['revision_id']=$id_rev;
                        $this->data['Produccion'][$key]['productor_id']=$id_productor;
                        $this->data['Produccion'][$key]['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Produccion->create($this->data['Produccion'][$key]);
                        if (($datos['fch_prod']!='')&&
                            ($datos['sup_sem_prod']!='')&&
                            ($this->Produccion->validates())){
                            $this->Produccion->save($this->data['Produccion'][$key]);
                        }
                    }
                }

                //Guardar practicas culturales
                if (!empty($this->data['Pcultural'])){
                    foreach($this->data['Pcultural'] as $key=>$datos){
                        $this->data['Pcultural'][$key]['revision_id']=$id_rev;
                        $this->Pcultural->create($this->data['Pcultural'][$key]);
                        if ($this->Pcultural->validates()){
                            $this->Pcultural->save($this->data['Pcultural'][$key]);
                        }
                    }
                }

                //Guardar comercializaciones
                if (!empty($this->data['Comercializacion'])){
                    foreach($this->data['Comercializacion'] as $key=>$datos){
                        $this->data['Comercializacion'][$key]['revision_id']=$id_rev;
                        $this->Comercializacion->create($this->data['Comercializacion'][$key]);
                        if(($datos['env_tipo_com']!='')&&
                            ($datos['kilos_com']!='')&&
                            ($datos['precio_com']!='')&&
                            ($this->Comercializacion->validates())){
                            $this->Comercializacion->save($this->data['Comercializacion'][$key]);
                        }
                    }
                }

                //Guardar informe tecnico observ_inf_tec
                if (!empty($this->data['Informestecnico'])){
                    foreach($this->data['Informestecnico'] as $key=>$datos){
                        $this->data['Informestecnico'][$key]['revision_id']=$id_rev;
                        $this->Informestecnico->create($this->data['Informestecnico'][$key]);
                        if(($datos['observ_inf_tec']!='')&&
                            ($this->Informestecnico->validates())){
                            $this->Informestecnico->save($this->data['Informestecnico'][$key]);
                        }
                    }
                }

                //Guardar  Control Fito Sanitario
                if (!empty($this->data['Controlessanitario'])){
                    foreach($this->data['Controlessanitario'] as $key=>$datos){
                        $this->data['Controlessanitario'][$key]['revision_id']=$id_rev;
                        $this->Controlessanitario->create($this->data['Controlessanitario'][$key]);
                        if (($datos['nombre_plaga']!='')&&
                            ($this->Controlessanitario->validates())){
                            $this->Controlessanitario->save($this->data['Controlessanitario'][$key]);
                        }
                    }
                }
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/productores/ver/'.$id_productor);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('productor',$this->Productor->find('first',array('conditions'=>'Productor.id='.$id_productor,'recursive'=>'-1')));
        $this->set('predios',$this->Productor->Predio->find('list',array(
                    'fields'=>'Predio.dom_pred',
                    'conditions'=>array('Predio.productor_id'=>$id_productor)
                )));
        $this->set('tecnicos',$this->Tecnico->find('superlist',array('fields'=>array(
                    'Tecnico.id','Tecnico.apellido_tec','Tecnico.nombre_tec'))));
        $this->Session->write('cont',0);
    }

    function agregarbimestral($id_productor){
        if (!empty($this->data)){
            $this->data['Revision']['productor_id']=$id_productor;
            $this->data['Revision']['actividadtipo_id']=$this->ID_FRUTIHORTICOLA;
            $this->data['Revision']['tipo_rev']='Bimestral';
            if($this->Revision->save($this->data)){
                $id_rev=$this->Revision->getID();

                //guardar instalaciones
                if (!empty($this->data['Instalacion'])){
                    foreach($this->data['Instalacion'] as $key=>$datos){
                        $this->data['Instalacion'][$key]['revision_id']=$id_rev;
                        $this->data['Instalacion'][$key]['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Instalacion->create($this->data['Instalacion'][$key]);
                        if (($datos['cant_inst']!='')&&
                            ($this->Instalacion->validates())){
                            if ($this->Instalacion->save($this->data['Instalacion'][$key])){
                                $id_inst=$this->Instalacion->getID();
                                //guardar atributos
                                if(!empty($this->data[$key])){
                                    foreach($this->data[$key]['Atributosxinstalacion'] as $clave=>$valor){
                                        $this->data[$key]['Atributosxinstalacion'][$clave]['instalacion_id']=$id_inst;
                                        $this->Atributosxinstalacion->create($this->data[$key]['Atributosxinstalacion'][$clave]);
                                        $this->Atributosxinstalacion->save($this->data[$key]['Atributosxinstalacion'][$clave]);
                                    }
                                }
                            }
                        }
                    }
                }

                //guardar financiamientos
                if (!empty($this->data['Financiamiento'])){
                    foreach($this->data['Financiamiento'] as $key=>$datos){
                        $this->data['Financiamiento'][$key]['revision_id']=$id_rev;
                        $this->Financiamiento->create($this->data['Financiamiento'][$key]);
                        if ($this->Financiamiento->validates()){
                            $this->Financiamiento->save($this->data['Financiamiento'][$key]);
                        }
                    }
                }

                //guardar empleados
                if (!empty($this->data['Empleado'])){
                    foreach($this->data['Empleado'] as $key=>$datos){
                        $this->data['Empleado'][$key]['revision_id']=$id_rev;
                        $this->Empleado->create($this->data['Empleado'][$key]);
                        if(($datos['cant_regis_empl']!='')&&
                            ($datos['cant_no_regis_empl']!='')&&
                            ($this->Empleado->validates())){
                            $this->Empleado->save($this->data['Empleado'][$key]);
                        }
                    }
                }
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/productores/ver/'.$id_productor);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('productor',$this->Productor->find('first',array('conditions'=>'Productor.id='.$id_productor,'recursive'=>'-1')));
        $this->set('predios',$this->Productor->Predio->find('list',array(
                    'fields'=>'Predio.dom_pred',
                    'conditions'=>array('Predio.productor_id'=>$id_productor)
                )));
        $this->set('tecnicos',$this->Tecnico->find('superlist',array('fields'=>array(
                    'Tecnico.id','Tecnico.apellido_tec','Tecnico.nombre_tec'))));
        $this->set('instalacionestipos',$this->Instalacionestipo->find('list',array('fields'=>'desc_tipo_inst','order'=>'desc_tipo_inst ASC','recursive'=>'-1')));
        $this->Session->write('cont',0);
    }

    function agregartecnica($id_productor){
        if (!empty($this->data)){
            $this->data['Revision']['productor_id']=$id_productor;
            $this->data['Revision']['actividadtipo_id']=$this->ID_FRUTIHORTICOLA;
            $this->data['Revision']['tipo_rev']='Tecnica';
            if($this->Revision->save($this->data)){
                $id_rev=$this->Revision->getID();

                //guardar situaciones actuales
                $this->data['Situacionesactual']['revision_id']=$id_rev;
                $this->Situacionesactual->save($this->data);

                //guardar recomendaciones de cultivos
                if (!empty($this->data['Recocultivo'])){
                    foreach ($this->data['Recocultivo'] as $key=>$datos){
                        $this->data['Recocultivo'][$key]['revision_id']=$id_rev;
                        $this->Recocultivo->create($this->data['Recocultivo'][$key]);
                        if ($this->Recocultivo->validates()){
                            $this->Recocultivo->save($this->data['Recocultivo'][$key]);
                        }
                    }
                }

                //guardar recomendaciones de instalaciones
                if (!empty($this->data['Recoinstalacion'])){
                    foreach($this->data['Recoinstalacion'] as $key=>$datos){
                        $this->data['Recoinstalacion'][$key]['revision_id']=$id_rev;
                        $this->Recoinstalacion->create($this->data['Recoinstalacion'][$key]);
                        if ($this->Recoinstalacion->validates()){
                            if ($this->Recoinstalacion->save($this->data['Recoinstalacion'][$key])){
                                $id_recoinst=$this->Recoinstalacion->getID();
                                //guardar atributos
                                if(!empty($this->data[$key])){
                                    foreach($this->data[$key]['Atributosxrecomendacion'] as $clave=>$valor){
                                        $this->data[$key]['Atributosxrecomendacion'][$clave]['recoinstalacion_id']=$id_recoinst;
                                        $this->Atributosxrecomendacion->create($this->data[$key]['Atributosxrecomendacion'][$clave]);
                                        $this->Atributosxrecomendacion->save($this->data[$key]['Atributosxrecomendacion'][$clave]);
                                    }
                                }
                            }
                        }
                    }
                }
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/productores/ver/'.$id_productor);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('productor',$this->Productor->find('first',array('conditions'=>'Productor.id='.$id_productor,'recursive'=>'-1')));
        $this->set('predios',$this->Productor->Predio->find('list',array(
                    'fields'=>'Predio.dom_pred',
                    'conditions'=>array('Predio.productor_id'=>$id_productor)
                )));
        $this->set('tecnicos',$this->Tecnico->find('superlist',array('fields'=>array(
                    'Tecnico.id','Tecnico.apellido_tec','Tecnico.nombre_tec'))));
        $this->set('instalacionestipos',$this->Instalacionestipo->find('list',array('fields'=>'desc_tipo_inst','order'=>'desc_tipo_inst ASC','recursive'=>'-1')));
        $this->set('opt_necesidades',array('MUY NECESARIO'=>'MUY NECESARIO','NECESARIO'=>'NECESARIO', 'NO NECESARIO'=>'NO NECESARIO'));
        $this->Session->write('cont',0);
    }

    function editarcabecera($id){
        if(!empty($this->data)){
            if ($this->Revision->save($this->data['Revision'])){
                //actualizar el predio_id de producciones
                $producciones=$this->Produccion->find('all',array(
                        'conditions'=>array('Produccion.revision_id'=>$id,'Produccion.predio_id <>'=>$this->data['Revision']['predio_id']),
                        'recursive'=>'-1'
                    ));
                if ($producciones){
                    foreach ($producciones as $p){
                        $p['Produccion']['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Produccion->create($p['Produccion']);
                        $this->Produccion->save($p['Produccion']);
                    }
                }
                //actualizar el predio_id de instalaciones
                $instalaciones=$this->Instalacion->find('all',array(
                        'conditions'=>array('Instalacion.revision_id'=>$id,'Instalacion.predio_id <>'=>$this->data['Revision']['predio_id']),
                        'recursive'=>'-1'
                    ));
                if ($instalaciones){
                    foreach ($instalaciones as $i){
                        $i['Instalacion']['predio_id']=$this->data['Revision']['predio_id'];
                        $this->Instalacion->create($i['Instalacion']);
                        $this->Instalacion->save($i['Instalacion']);
                    }
                }
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/revisiones/ver/'.$id);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        if(empty($this->data)){
            $this->data = $this->Revision->read(null,$id);
        }
        $this->set('predios',$this->Productor->Predio->find('list',array(
                    'fields'=>'Predio.dom_pred',
                    'conditions'=>array('Predio.productor_id'=>$this->data['Revision']['productor_id']),
                    'order'=>'Predio.dom_pred'
                )));
        $this->set('tecnicos',$this->Tecnico->find('superlist',array(
                    'fields'=>array('Tecnico.id','Tecnico.apellido_tec','Tecnico.nombre_tec'))));
    }

    function editarobservaciones($id){
        if(!empty($this->data)){
            if ($this->Revision->save($this->data)){
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect('/revisiones/ver/'.$id);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        if(empty($this->data)){
            $this->data = $this->Revision->read(null,$id);
        }
    }

    function eliminar($id=null){
        $id_productor=$this->Revision->field('Revision.productor_id',array('Revision.id'=>$id));
        if($this->Revision->del($id)){
            $this->Session->setFlash('Operacion realizada correctamente.');
            $this->redirect('/productores/ver/'.$id_productor);
        }else{
            $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            $this->redirect('/productores/ver/'.$id_productor);
        }
    }

/*----------------------------------------
 * LLAMADAS AJAX PARA REVISION INICIAL
 * ---------------------------------------*/
    function add_empleado_inicial(){
        Configure::write("debug", 0); //don't want the cake debug in de ajax response
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->render("","", "../elements/add_empleado_inicial");
    }

    function add_produccion_inicial(){
        Configure::write("debug", 0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('productos',$this->Producto->find('superlist',array(
                    'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                    'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC'))));
        $this->set('produccionformas',$this->Produccion->Produccionforma->find('list',array('fields'=>'forma_prod','order'=>'forma_prod ASC')));
        $this->set('riegoformas',$this->Produccion->Riegoforma->find('list',array('fields'=>'forma_riego','order'=>'forma_riego ASC')));
        $this->render("","", "../elements/add_produccion_inicial");
    }

    function add_instalacion_inicial(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $inst_tipo_id=$this->data['Selected']['instalaciontipo'];
        $this->set('instalacion',$this->Instalacionestipo->find('first',array('conditions'=>'Instalacionestipo.id='.$inst_tipo_id,'recursive'=>'-1')));
        $this->set('atributos',$this->Instalacionestipo->Atributo->find('all',array(
                    'conditions'=>'Atributo.instalacionestipo_id='.$inst_tipo_id,
                    'order'=>'Atributo.nombre_atr ASC',
                    'recursive'=>'-1')));
        $this->render("","", "../elements/add_instalacion_inicial");
    }

    function add_otra_actividad_inicial(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('actividades',array('AGRICULTURA EXTENSIVA'=>'AGRICULTURA EXTENSIVA','FORESTAL'=>'FORESTAL','GANADERIA MAYOR'=>'GANADERIA MAYOR','GANADERIA MENOR'=>'GANADERIA MENOR','GRANJA'=>'GRANJA','OTROS'=>'OTROS'));
        $this->render('','','../elements/add_otra_actividad_inicial');
    }

    function add_financiamiento_inicial(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('entidades',$this->Financiamiento->Entidad->find('list',array(
                    'fields'=>'Entidad.nombre_ent',
                    'order'=>array('Entidad.nombre_ent'=>'ASC'))));
        $this->set('tiposFinanciamientos',array('CREDITO'=>'CREDITO','SUBSIDIO'=>'SUBSIDIO'));
        $this->render('','','../elements/add_financiamiento_inicial');
    }

    function add_canproductor_inicial(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('canales',$this->Canal->find('list',array('fields'=>'nombre_canal','order'=>'nombre_canal ASC')));
        $this->render('','','../elements/add_canproductor_inicial');
    }

    function add_comercializacion_inicial(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('productos',$this->Producto->find('superlist',array(
                    'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                    'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC'))));
        $this->set('canales',$this->Canal->find('list',array('fields'=>'nombre_canal','order'=>'nombre_canal ASC')));
        $this->render('','','../elements/add_comercializacion_inicial');
    }

    function update_atr(){
        $id_instipo=$this->data['Instalacion']['instalacionestipo_id'];
        $atr=$this->Atributo->find('list',array(
                    'fields'=>'Atributo.nombre_atr',
                    'conditions'=>'Atributo.instalacionestipo_id='.$id_instipo,
                    'order'=>'Atributo.nombre_atr ASC'));
        $this->set('atributos', $atr);
        $this->render('/elements/update_atr', 'ajax');
    }

/*----------------------------------------
 * LLAMADAS AJAX PARA REVISION QUINCENAL
 * ---------------------------------------*/
    function add_produccion_quincenal(){
        Configure::write("debug", 0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('productos',$this->Producto->find('superlist',array(
                    'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                    'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC'))));
        $this->set('produccionformas',$this->Produccion->Produccionforma->find('list',array('fields'=>'forma_prod','order'=>'forma_prod ASC')));
        $this->set('riegoformas',$this->Produccion->Riegoforma->find('list',array('fields'=>'forma_riego','order'=>'forma_riego ASC')));
        $this->render("","", "../elements/add_produccion_quincenal");
    }

    function add_practica_cultural($id_productor){
        Configure::write("debug", 0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('quimicos',$this->Quimico->find('list',array('fields'=>'nombre_quimico','order'=>'nombre_quimico ASC')));
        //        $listadoProductos= $this->Produccion->query('SELECT `Producto`.`id`, `Producto`.`nombre_prod`, `Producto`.`variedad_prod`, `Produccion`.`id`,`Produccion`.`fch_prod` FROM `producciones` AS `Produccion`
        //                                          LEFT JOIN `productos` AS `Producto` ON (`Produccion`.`producto_id` = `Producto`.`id`) LEFT JOIN `revisiones` AS `Revision` ON (`Produccion`.`revision_id` = `Revision`.`id`)
        //                                          WHERE `Revision`.`productor_id`='.$id_productor,'ORDER BY `Produccion`.`fch_prod` DESC, `Producto`.`nombre_prod` ASC, `Producto`.`variedad_prod` ASC');
        $producciones_tmp = $this->Produccion->find('all',array(
                'fields'=>array('Produccion.id','Produccion.fch_prod','Producto.nombre_prod','Producto.variedad_prod'),
                'conditions'=>array('Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA,'Produccion.productor_id'=>$id_productor),
                'order'=>array('Produccion.fch_prod'=>'DESC','Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
            ));
        $this->set('producciones', Set::combine($producciones_tmp,'{n}.Produccion.id',array('%s  %s  %s','{n}.Producto.nombre_prod', '{n}.Producto.variedad_prod','{n}.Produccion.fch_prod')));
        $this->render("","", "../elements/add_practica_cultural");

    }

    function add_informe_tecnico($id_productor){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('etapas',$this->Etapa->find('list',array('fields'=>'nombre_etapa','order'=>'nombre_etapa ASC')));
        $producciones_tmp = $this->Produccion->find('all',array(
                'fields'=>array('Produccion.id','Produccion.fch_prod','Producto.nombre_prod','Producto.variedad_prod'),
                'conditions'=>array('Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA,'Produccion.productor_id'=>$id_productor),
                'order'=>array('Produccion.fch_prod'=>'DESC','Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
            ));
        $this->set('producciones', Set::combine($producciones_tmp,'{n}.Produccion.id',array('%s  %s  %s','{n}.Producto.nombre_prod', '{n}.Producto.variedad_prod','{n}.Produccion.fch_prod')));
        $this->render("","", "../elements/add_informe_tecnico");
    }

    function add_control_fito_sanitario($id_productor){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $producciones_tmp = $this->Produccion->find('all',array(
                'fields'=>array('Produccion.id','Produccion.fch_prod','Producto.nombre_prod','Producto.variedad_prod'),
                'conditions'=>array('Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA,'Produccion.productor_id'=>$id_productor),
                'order'=>array('Produccion.fch_prod'=>'DESC','Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
            ));
        $this->set('producciones', Set::combine($producciones_tmp,'{n}.Produccion.id',array('%s  %s  %s','{n}.Producto.nombre_prod', '{n}.Producto.variedad_prod','{n}.Produccion.fch_prod')));
        $this->set('plagastipo',array('PLAGA'=>'PLAGA','ENFERMEDAD'=>'ENFERMEDAD','INSECTOS'=>'INSECTOS','OTROS'=>'OTROS'));
        $this->set('eleccion',array('SI'=>'SI','NO'=>'NO'));
        $this->render("","", "../elements/add_control_fito_sanitario");
    }

    function add_comercializacion_quincenal(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('productos',$this->Producto->find('superlist',array(
                    'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                    'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC'))));
        $this->set('canales',$this->Canal->find('list',array('fields'=>'nombre_canal','order'=>'nombre_canal ASC')));
        $this->render('','','../elements/add_comercializacion_quincenal');
    }

/*----------------------------------------
 * LLAMADAS AJAX PARA REVISION TECNICA
 * ---------------------------------------*/
    function add_reco_cultivo(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $this->set('productos',$this->Producto->find('superlist',array(
                    'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                    'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                    'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC'))));
        $this->render('','','../elements/add_reco_cultivo');
    }

    function add_reco_instalacion(){
        Configure::write("debug",0);
        $x=$this->Session->read('cont')+1;
        $this->Session->write('cont',$x);
        $this->set("id", $x);
        $inst_tipo_id=$this->data['Selected']['instalaciontipo'];
        $this->set('instalacion',$this->Instalacionestipo->find('first',array('conditions'=>'Instalacionestipo.id='.$inst_tipo_id,'recursive'=>'-1')));
        $this->set('atributos',$this->Instalacionestipo->Atributo->find('all',array(
                    'conditions'=>'Atributo.instalacionestipo_id='.$inst_tipo_id,
                    'order'=>'Atributo.nombre_atr ASC',
                    'recursive'=>'-1')));
        $this->render('','','../elements/add_reco_instalacion');
    }

}
?>